package com.hyts.rpclet.context.item;

import com.google.common.collect.Maps;
import com.hyts.rpclet.context.AbstractRpcletContext;
import com.hyts.rpclet.execute.RpcletMethodInvoker;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
 * project-name:coffice-toolbox
 * package-name:com.hyts.rpclet.context.item
 * author:Libo/Alex
 * create-date:2019-07-09 23:56
 * copyright:libo-hyts-github
 * email:libo2dev@aliyun.com
 * description:此类主要用于:内存形上下文操作
 */
@Component
public class MemoryRpcletContext extends AbstractRpcletContext {

    /**
     * 构建内存级别的方法调用功能实现
     */
    private static Map<String, RpcletMethodInvoker> rpcletMethodInvokerMap = Maps.newConcurrentMap();

    @Override
    public void add(String accessRpcUrl, RpcletMethodInvoker rpcletMethodInvoker) {
        rpcletMethodInvokerMap.put(accessRpcUrl,rpcletMethodInvoker);
    }

    @Override
    public void remove(String accessRpcUrl) {
        rpcletMethodInvokerMap.remove(accessRpcUrl);
    }

    @Override
    public RpcletMethodInvoker get(String accessRpcUrl) {
        return rpcletMethodInvokerMap.get(accessRpcUrl);
    }
}
